<template>
  <div class="row">
    <h1 v-show="loading">loading...</h1>
    <div v-show="!loading" >
      <div class="card" v-for="user in users" :key = "user.id">
        <a :href="user.html_url" target="_blank">
          <img :src="user.avatar_url" style='width: 100px'/>
        </a>
        <p class="card-text">{{ user.login }}</p>
      </div>
    </div>
    
  </div>
</template>

<script>
import axios from "axios";

export default {
  name: "UserList",
  data(){
    return {
      loading:false,
      users:[],
    }
  },
  methods: {
    async search(keyword){
      // console.log(keyword);
      
      try{
        this.loading = true;
        const result = await axios.get(`/api/search/users?q=${keyword}`);
        this.users = result.data.items;
      }catch(e){
        console.log(e);
      }finally{
        this.loading = false;
      }
      
    },
  },
  mounted(){
    this.$bus.$on("search",this.search);
  },
  beforeDestroy(){
    this.$bus.$off("search",this.search);

  }
};

</script>

<style>

.album {
  min-height: 50rem; /* Can be removed; just added for demo purposes */
  padding-top: 3rem;
  padding-bottom: 3rem;
  background-color: #f7f7f7;
}

.card {
  float: left;
  width: 33.333%;
  padding: 0.75rem;
  margin-bottom: 2rem;
  border: 1px solid #efefef;
  text-align: center;
}

.card > img {
  margin-bottom: 0.75rem;
  border-radius: 100px;
}

.card-text {
  font-size: 85%;
}
</style>